package org.gingresosapi.persistencia;

import org.gingresosapi.beans.Exoneraciones;
import java.sql.Date; 
import org.gingresosapi.beans.*;
import org.gingresosapi.controller.*;
import java.io.Serializable;
import java.util.List;
import java.util.ArrayList;
import java.util.*;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.PreparedStatement;
import java.util.Map;
import java.util.Iterator;
import java.util.HashMap;
import java.util.Map;
 import javax.sql.DataSource;
import org.gingresosapi.generales.Mensajeria;
import org.gingresosapi.generales.DataGManager;


/**
*
* @author
*/

public class ExoneracionesPersistencia implements Serializable {
private static final long serialVersionUID = 1L;
public static Exception excepcion;
public static boolean esMensaje = false;
public static Connection con = null;
public static java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("org/gingresosapi/properties/mensajes");
static DataGManager dataGManager;
static List<Exoneraciones> list;

public ExoneracionesPersistencia(){
         esMensaje =false;
}


/**
*
* insert()
*/

public static boolean insert (Exoneraciones exoneraciones ) {
  excepcion = null;
  try {
      esMensaje =false;
   
   
   

  con= dataGManager.getCon();
  if (con == null) {
      excepcion=new Exception(bundle.getString("msg.noconecction"));
      return false;
  }
      PreparedStatement pinsert = null;
      String sql = "insert into exoneraciones(idexoneracion,fechaexoneracion,autorizado,detalle,porcentaje,valor,activo,idmunicipio,idusuario,fecha,anio)  values(?,?,?,?,?,?,?,?,?,?,?)";
      pinsert = con.prepareStatement(sql);
              pinsert.setString(1,exoneraciones.getIdexoneracion());
        pinsert.setDate(2,exoneraciones.getFechaexoneracion());
        pinsert.setString(3,exoneraciones.getAutorizado());
        pinsert.setString(4,exoneraciones.getDetalle());
        pinsert.setDouble(5,exoneraciones.getPorcentaje());
        pinsert.setDouble(6,exoneraciones.getValor());
        pinsert.setString(7,exoneraciones.getActivo());
        pinsert.setString(8,exoneraciones.getIdmunicipio());
        pinsert.setString(9,exoneraciones.getIdusuario());
        pinsert.setDate(10,exoneraciones.getFecha());
        pinsert.setInt(11,exoneraciones.getAnio());
      int filas= pinsert.executeUpdate();
      pinsert.close();
      return true;
   } catch (Exception e) {
      excepcion = e;
   } finally {
  }
  return false;
 }


/**
*
* update()
*/

public static boolean update(Exoneraciones exoneraciones ) {
  excepcion = null;
  try {
      esMensaje =false;

  con= dataGManager.getCon();
  if (con == null) {
      excepcion=new Exception(bundle.getString("msg.noconecction"));
      return false;
  }
      PreparedStatement pupdate = null;
      String sql = "update exoneraciones set  idexoneracion=?, fechaexoneracion=?, autorizado=?, detalle=?, porcentaje=?, valor=?, activo=?, idmunicipio=?, idusuario=?, fecha=?, anio=?  where  idexoneracion ='"+exoneraciones.getIdexoneracion()+"' and  idmunicipio ='"+exoneraciones.getIdmunicipio()+"' and  anio ='"+exoneraciones.getAnio()+"'  ";
      pupdate= con.prepareStatement(sql);
      pupdate.setString(1,exoneraciones.getIdexoneracion());
pupdate.setDate(2,exoneraciones.getFechaexoneracion());
pupdate.setString(3,exoneraciones.getAutorizado());
pupdate.setString(4,exoneraciones.getDetalle());
pupdate.setDouble(5,exoneraciones.getPorcentaje());
pupdate.setDouble(6,exoneraciones.getValor());
pupdate.setString(7,exoneraciones.getActivo());
pupdate.setString(8,exoneraciones.getIdmunicipio());
pupdate.setString(9,exoneraciones.getIdusuario());
pupdate.setDate(10,exoneraciones.getFecha());
pupdate.setInt(11,exoneraciones.getAnio());
      int filas= pupdate.executeUpdate();
      pupdate.close();
      if (filas <= 0){
          excepcion=new Exception(bundle.getString("msg.noupdate"));
          esMensaje =true;
          return false;
      }
      return true;
   } catch (Exception e) {
      excepcion = e;
   } finally {
  }
  return false;
}


/**
*
* update()
*/

public static boolean update(String sqlupdate ) {
  excepcion = null;
  try {
      esMensaje =false;

  con= dataGManager.getCon();
  if (con == null) {
      excepcion=new Exception(bundle.getString("msg.noconecction"));
      return false;
  }
      PreparedStatement pupdate = null;
      String sql = "update  exoneraciones set " + sqlupdate +"";
      pupdate= con.prepareStatement(sql);
      int filas= pupdate.executeUpdate();
      pupdate.close();
      if (filas <= 0){
          excepcion=new Exception(bundle.getString("msg.noupdate"));
          esMensaje =true;
          return false;
      }
      return true;
   } catch (Exception e) {
      excepcion = e;
   } finally {
  }
  return false;
}


/**
*
* updatePrimaryKey()
*/

public static boolean updatePrimaryKey(Exoneraciones exoneraciones_old , Exoneraciones exoneraciones) {
  excepcion = null;
  try {
      esMensaje =false;

  con= dataGManager.getCon();
  if (con == null) {
      excepcion=new Exception(bundle.getString("msg.noconecction"));
      return false;
  }
      PreparedStatement pupdate = null;
      String sql = "update exoneraciones set  idexoneracion=? ,  idmunicipio=? ,  anio=?  where  idexoneracion ='"+exoneraciones_old.getIdexoneracion()+"' and  idmunicipio ='"+exoneraciones_old.getIdmunicipio()+"' and  anio ='"+exoneraciones_old.getAnio()+"'  ";
      pupdate= con.prepareStatement(sql);
      pupdate.setString(1,exoneraciones.getIdexoneracion());pupdate.setString(8,exoneraciones.getIdmunicipio());pupdate.setInt(11,exoneraciones.getAnio());
      int filas= pupdate.executeUpdate();
      pupdate.close();
      if (filas <= 0){
          excepcion=new Exception(bundle.getString("msg.noupdate"));
          esMensaje =true;
          return false;
      }
      return true;
   } catch (Exception e) {
      excepcion = e;
   } finally {
  }
  return false;
}


/**
*
* delete()
*/

public static boolean delete(Exoneraciones exoneraciones ) {
  excepcion = null;
  try {
      esMensaje =false;

  con= dataGManager.getCon();
  if (con == null) {
      excepcion=new Exception(bundle.getString("msg.noconecction"));
      return false;
  }
      PreparedStatement pdelete = null;
      String sql = "delete from exoneraciones  where  idexoneracion = ? and  idmunicipio = ? and  anio = ?  ";
      pdelete= con.prepareStatement(sql);
      pdelete.setString(1,exoneraciones.getIdexoneracion());
pdelete.setString(8,exoneraciones.getIdmunicipio());
pdelete.setInt(11,exoneraciones.getAnio());
      int filas= pdelete.executeUpdate();
      pdelete.close();
      if (filas <= 0){
          excepcion=new Exception(bundle.getString("msg.nodelete"));
          esMensaje =true;
          return false;
      }
      return true;
   } catch (Exception e) {
      excepcion = e;
   } finally {
  }
  return false;
}


/**
*
* delete()
*/

public static boolean delete(String sqldelete ) {
  excepcion = null;
  try {
      esMensaje =false;

  con= dataGManager.getCon();
  if (con == null) {
      excepcion=new Exception(bundle.getString("msg.noconecction"));
      return false;
  }
      PreparedStatement pdelete = null;
      String sql = "delete from exoneraciones where " + sqldelete +"";
      pdelete= con.prepareStatement(sql);
      int filas= pdelete.executeUpdate();
      pdelete.close();
      if (filas <= 0){
          excepcion=new Exception(bundle.getString("msg.nodelete"));
          esMensaje =true;
          return false;
      }
      return true;
   } catch (Exception e) {
      excepcion = e;
   } finally {
  }
  return false;
}


/**
*
* deleteAll()
*/

public static boolean deleteAll() {
  excepcion = null;
  try {
      esMensaje =false;

  con= dataGManager.getCon();
  if (con == null) {
      excepcion=new Exception(bundle.getString("msg.noconecction"));
      return false;
  }
      PreparedStatement pdelete = null;
      String sql = "delete from exoneraciones  ";
      pdelete= con.prepareStatement(sql);
      int filas= pdelete.executeUpdate();
      pdelete.close();
      if (filas <= 0){
          excepcion=new Exception(bundle.getString("msg.nodeleteall"));
          esMensaje =true;
          return false;
      }
      return true;
   } catch (Exception e) {
      excepcion = e;
   } finally {
  }
  return false;
}


/**
*
* exists()
*/



public static boolean exists(Exoneraciones exoneraciones) {
  excepcion = null;
  try {
      esMensaje =false;

  con= dataGManager.getCon();
  if (con == null) {
      excepcion=new Exception(bundle.getString("msg.noconecction"));
      return false;
  }
      String sql = "select * from exoneraciones where idexoneracion='"+exoneraciones.getIdexoneracion()+"' and idmunicipio='"+exoneraciones.getIdmunicipio()+"' and anio='"+exoneraciones.getAnio()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "exoneraciones" +" " + bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      return false;
   }
    rs.close();
    psquery.close();
 return true;
} catch (Exception ex) {
      excepcion = ex;
}
  return false;
}


/**
*
* findByPrimaryKey()
*/



public static Exoneraciones findByPrimaryKey(Exoneraciones exoneraciones) {
  excepcion = null;
  try {
      esMensaje =false;

  con= dataGManager.getCon();
  if (con == null) {
      excepcion=new Exception(bundle.getString("msg.noconecction"));
      return null;
  }
      String sql = "select * from exoneraciones where idexoneracion='"+exoneraciones.getIdexoneracion()+"' and idmunicipio='"+exoneraciones.getIdmunicipio()+"' and anio='"+exoneraciones.getAnio()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "exoneraciones" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
            
            
            exoneraciones.setIdexoneracion(rs.getString("idexoneracion"));
exoneraciones.setFechaexoneracion(rs.getDate("fechaexoneracion"));
exoneraciones.setAutorizado(rs.getString("autorizado"));
exoneraciones.setDetalle(rs.getString("detalle"));
exoneraciones.setPorcentaje(rs.getDouble("porcentaje"));
exoneraciones.setValor(rs.getDouble("valor"));
exoneraciones.setActivo(rs.getString("activo"));
exoneraciones.setIdmunicipio(rs.getString("idmunicipio"));
exoneraciones.setIdusuario(rs.getString("idusuario"));
exoneraciones.setFecha(rs.getDate("fecha"));
exoneraciones.setAnio(rs.getInt("anio"));
    }
    rs.close();
    psquery.close();
 return exoneraciones;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByIdexoneracion()
*/

public static List<Exoneraciones> findByIdexoneracion(Exoneraciones exoneraciones,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;

  con= dataGManager.getCon();
  if (con == null) {
      excepcion=new Exception(bundle.getString("msg.noconecction"));
      return null;
  }
       list = new ArrayList<Exoneraciones>();
      String sql = "select * from exoneraciones where idexoneracion='"+exoneraciones.getIdexoneracion()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "exoneraciones" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
        Exoneraciones exoneraciones2 = new Exoneraciones(
         rs.getString("idexoneracion"),rs.getDate("fechaexoneracion"),rs.getString("autorizado"),rs.getString("detalle"),rs.getDouble("porcentaje"),rs.getDouble("valor"),rs.getString("activo"),rs.getString("idmunicipio"),rs.getString("idusuario"),rs.getDate("fecha"),rs.getInt("anio"));
            
            
       list.add(exoneraciones2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByFechaexoneracion()
*/

public static List<Exoneraciones> findByFechaexoneracion(Exoneraciones exoneraciones,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;

  con= dataGManager.getCon();
  if (con == null) {
      excepcion=new Exception(bundle.getString("msg.noconecction"));
      return null;
  }
       list = new ArrayList<Exoneraciones>();
      String sql = "select * from exoneraciones where fechaexoneracion='"+exoneraciones.getFechaexoneracion()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "exoneraciones" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
        Exoneraciones exoneraciones2 = new Exoneraciones(
         rs.getString("idexoneracion"),rs.getDate("fechaexoneracion"),rs.getString("autorizado"),rs.getString("detalle"),rs.getDouble("porcentaje"),rs.getDouble("valor"),rs.getString("activo"),rs.getString("idmunicipio"),rs.getString("idusuario"),rs.getDate("fecha"),rs.getInt("anio"));
            
            
       list.add(exoneraciones2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByAutorizado()
*/

public static List<Exoneraciones> findByAutorizado(Exoneraciones exoneraciones,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;

  con= dataGManager.getCon();
  if (con == null) {
      excepcion=new Exception(bundle.getString("msg.noconecction"));
      return null;
  }
       list = new ArrayList<Exoneraciones>();
      String sql = "select * from exoneraciones where autorizado='"+exoneraciones.getAutorizado()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "exoneraciones" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
        Exoneraciones exoneraciones2 = new Exoneraciones(
         rs.getString("idexoneracion"),rs.getDate("fechaexoneracion"),rs.getString("autorizado"),rs.getString("detalle"),rs.getDouble("porcentaje"),rs.getDouble("valor"),rs.getString("activo"),rs.getString("idmunicipio"),rs.getString("idusuario"),rs.getDate("fecha"),rs.getInt("anio"));
            
            
       list.add(exoneraciones2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByDetalle()
*/

public static List<Exoneraciones> findByDetalle(Exoneraciones exoneraciones,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;

  con= dataGManager.getCon();
  if (con == null) {
      excepcion=new Exception(bundle.getString("msg.noconecction"));
      return null;
  }
       list = new ArrayList<Exoneraciones>();
      String sql = "select * from exoneraciones where detalle='"+exoneraciones.getDetalle()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "exoneraciones" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
        Exoneraciones exoneraciones2 = new Exoneraciones(
         rs.getString("idexoneracion"),rs.getDate("fechaexoneracion"),rs.getString("autorizado"),rs.getString("detalle"),rs.getDouble("porcentaje"),rs.getDouble("valor"),rs.getString("activo"),rs.getString("idmunicipio"),rs.getString("idusuario"),rs.getDate("fecha"),rs.getInt("anio"));
            
            
       list.add(exoneraciones2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByPorcentaje()
*/

public static List<Exoneraciones> findByPorcentaje(Exoneraciones exoneraciones,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;

  con= dataGManager.getCon();
  if (con == null) {
      excepcion=new Exception(bundle.getString("msg.noconecction"));
      return null;
  }
       list = new ArrayList<Exoneraciones>();
      String sql = "select * from exoneraciones where porcentaje='"+exoneraciones.getPorcentaje()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "exoneraciones" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
        Exoneraciones exoneraciones2 = new Exoneraciones(
         rs.getString("idexoneracion"),rs.getDate("fechaexoneracion"),rs.getString("autorizado"),rs.getString("detalle"),rs.getDouble("porcentaje"),rs.getDouble("valor"),rs.getString("activo"),rs.getString("idmunicipio"),rs.getString("idusuario"),rs.getDate("fecha"),rs.getInt("anio"));
            
            
       list.add(exoneraciones2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByValor()
*/

public static List<Exoneraciones> findByValor(Exoneraciones exoneraciones,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;

  con= dataGManager.getCon();
  if (con == null) {
      excepcion=new Exception(bundle.getString("msg.noconecction"));
      return null;
  }
       list = new ArrayList<Exoneraciones>();
      String sql = "select * from exoneraciones where valor='"+exoneraciones.getValor()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "exoneraciones" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
        Exoneraciones exoneraciones2 = new Exoneraciones(
         rs.getString("idexoneracion"),rs.getDate("fechaexoneracion"),rs.getString("autorizado"),rs.getString("detalle"),rs.getDouble("porcentaje"),rs.getDouble("valor"),rs.getString("activo"),rs.getString("idmunicipio"),rs.getString("idusuario"),rs.getDate("fecha"),rs.getInt("anio"));
            
            
       list.add(exoneraciones2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByActivo()
*/

public static List<Exoneraciones> findByActivo(Exoneraciones exoneraciones,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;

  con= dataGManager.getCon();
  if (con == null) {
      excepcion=new Exception(bundle.getString("msg.noconecction"));
      return null;
  }
       list = new ArrayList<Exoneraciones>();
      String sql = "select * from exoneraciones where activo='"+exoneraciones.getActivo()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "exoneraciones" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
        Exoneraciones exoneraciones2 = new Exoneraciones(
         rs.getString("idexoneracion"),rs.getDate("fechaexoneracion"),rs.getString("autorizado"),rs.getString("detalle"),rs.getDouble("porcentaje"),rs.getDouble("valor"),rs.getString("activo"),rs.getString("idmunicipio"),rs.getString("idusuario"),rs.getDate("fecha"),rs.getInt("anio"));
            
            
       list.add(exoneraciones2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByIdmunicipio()
*/

public static List<Exoneraciones> findByIdmunicipio(Exoneraciones exoneraciones,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;

  con= dataGManager.getCon();
  if (con == null) {
      excepcion=new Exception(bundle.getString("msg.noconecction"));
      return null;
  }
       list = new ArrayList<Exoneraciones>();
      String sql = "select * from exoneraciones where idmunicipio='"+exoneraciones.getIdmunicipio()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "exoneraciones" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
        Exoneraciones exoneraciones2 = new Exoneraciones(
         rs.getString("idexoneracion"),rs.getDate("fechaexoneracion"),rs.getString("autorizado"),rs.getString("detalle"),rs.getDouble("porcentaje"),rs.getDouble("valor"),rs.getString("activo"),rs.getString("idmunicipio"),rs.getString("idusuario"),rs.getDate("fecha"),rs.getInt("anio"));
            
            
       list.add(exoneraciones2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByIdusuario()
*/

public static List<Exoneraciones> findByIdusuario(Exoneraciones exoneraciones,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;

  con= dataGManager.getCon();
  if (con == null) {
      excepcion=new Exception(bundle.getString("msg.noconecction"));
      return null;
  }
       list = new ArrayList<Exoneraciones>();
      String sql = "select * from exoneraciones where idusuario='"+exoneraciones.getIdusuario()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "exoneraciones" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
        Exoneraciones exoneraciones2 = new Exoneraciones(
         rs.getString("idexoneracion"),rs.getDate("fechaexoneracion"),rs.getString("autorizado"),rs.getString("detalle"),rs.getDouble("porcentaje"),rs.getDouble("valor"),rs.getString("activo"),rs.getString("idmunicipio"),rs.getString("idusuario"),rs.getDate("fecha"),rs.getInt("anio"));
            
            
       list.add(exoneraciones2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByFecha()
*/

public static List<Exoneraciones> findByFecha(Exoneraciones exoneraciones,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;

  con= dataGManager.getCon();
  if (con == null) {
      excepcion=new Exception(bundle.getString("msg.noconecction"));
      return null;
  }
       list = new ArrayList<Exoneraciones>();
      String sql = "select * from exoneraciones where fecha='"+exoneraciones.getFecha()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "exoneraciones" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
        Exoneraciones exoneraciones2 = new Exoneraciones(
         rs.getString("idexoneracion"),rs.getDate("fechaexoneracion"),rs.getString("autorizado"),rs.getString("detalle"),rs.getDouble("porcentaje"),rs.getDouble("valor"),rs.getString("activo"),rs.getString("idmunicipio"),rs.getString("idusuario"),rs.getDate("fecha"),rs.getInt("anio"));
            
            
       list.add(exoneraciones2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* findByAnio()
*/

public static List<Exoneraciones> findByAnio(Exoneraciones exoneraciones,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;

  con= dataGManager.getCon();
  if (con == null) {
      excepcion=new Exception(bundle.getString("msg.noconecction"));
      return null;
  }
       list = new ArrayList<Exoneraciones>();
      String sql = "select * from exoneraciones where anio='"+exoneraciones.getAnio()+"'";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "exoneraciones" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
        Exoneraciones exoneraciones2 = new Exoneraciones(
         rs.getString("idexoneracion"),rs.getDate("fechaexoneracion"),rs.getString("autorizado"),rs.getString("detalle"),rs.getDouble("porcentaje"),rs.getDouble("valor"),rs.getString("activo"),rs.getString("idmunicipio"),rs.getString("idusuario"),rs.getDate("fecha"),rs.getInt("anio"));
            
            
       list.add(exoneraciones2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* locateByParameters()
*/

public static List<Exoneraciones> locateByParameters(Map parametros,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;

  con= dataGManager.getCon();
  if (con == null) {
      excepcion=new Exception(bundle.getString("msg.noconecction"));
      return null;
  }
       list = new ArrayList<Exoneraciones>();
  String sql = "select * from exoneraciones";
  if (parametros != null) {
      Iterator it = parametros.entrySet().iterator();
      StringBuilder sb = new StringBuilder("");
      int i = 0;
      while (it.hasNext()) {
          if (i != 0){
            sb.append(" and ");
         }
         i++;
        Map.Entry e = (Map.Entry) it.next();
        sb.append(e.getKey() +"= '"+  e.getValue()+"'");
      }
      if (!sb.toString().equals("")){
         sql = sql + " where " + sb.toString();
      }
   }
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "exoneraciones" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
        Exoneraciones exoneraciones2 = new Exoneraciones(
         rs.getString("idexoneracion"),rs.getDate("fechaexoneracion"),rs.getString("autorizado"),rs.getString("detalle"),rs.getDouble("porcentaje"),rs.getDouble("valor"),rs.getString("activo"),rs.getString("idmunicipio"),rs.getString("idusuario"),rs.getDate("fecha"),rs.getInt("anio"));
            
            
       list.add(exoneraciones2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* Double fFunc(String funcion, String campo)
*/



public static Double func(String funcion, String campo) {
  excepcion = null;
  try {
      esMensaje =false;

  con= dataGManager.getCon();
  if (con == null) {
      excepcion=new Exception(bundle.getString("msg.noconecction"));
      return 0.0;
  }
      String sql = "select "+funcion+"("+campo+") as contador from exoneraciones";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "exoneraciones" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      return 0.0;
   }
    Double tmp =0.0;
   rs.beforeFirst();
   while (rs.next()) {
    tmp =  rs.getDouble("contador");
    }
    rs.close();
    psquery.close();
 return tmp;
} catch (Exception ex) {
      excepcion = ex;
}
  return 0.0;
}


/**
*
* Double func(String funcion, String campo,String where)
*/



public static Double func(String funcion, String campo, String where) {
  excepcion = null;
  try {
      esMensaje =false;

  con= dataGManager.getCon();
  if (con == null) {
      excepcion=new Exception(bundle.getString("msg.noconecction"));
      return 0.0;
  }
      String sql = "select "+funcion+"("+campo+") as contador from exoneraciones where "+where +" ";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "exoneraciones" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      return 0.0;
   }
    Double tmp =0.0;
   rs.beforeFirst();
   while (rs.next()) {
    tmp =  rs.getDouble("contador");
    }
    rs.close();
    psquery.close();
 return tmp;
} catch (Exception ex) {
      excepcion = ex;
}
  return 0.0;
}


/**
*
* count()
*/



public static Integer count() {
  excepcion = null;
  try {
      esMensaje =false;

  con= dataGManager.getCon();
  if (con == null) {
      excepcion=new Exception(bundle.getString("msg.noconecction"));
      return 0;
  }
      String sql = "select count(*) as contador from exoneraciones";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "exoneraciones" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      return 0;
   }
   rs.beforeFirst();
   while (rs.next()) {
    x =  rs.getInt("contador");
    }
    rs.close();
    psquery.close();
 return x;
} catch (Exception ex) {
      excepcion = ex;
}
  return 0;
}


/**
*
* count(String sqlquery)
*/



public static Integer count(String sqlquery) {
  excepcion = null;
  try {
      esMensaje =false;

  con= dataGManager.getCon();
  if (con == null) {
      excepcion=new Exception(bundle.getString("msg.noconecction"));
      return 0;
  }
      String sql = "select count(*) as contador from exoneraciones where  " + sqlquery +"";
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "exoneraciones" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      return 0;
   }
   rs.beforeFirst();
   while (rs.next()) {
    x =  rs.getInt("contador");
    }
    rs.close();
    psquery.close();
 return x;
} catch (Exception ex) {
      excepcion = ex;
}
  return 0;
}


/**
*
* query()
*/

public static List<Exoneraciones> query(String query,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;

  con= dataGManager.getCon();
  if (con == null) {
      excepcion=new Exception(bundle.getString("msg.noconecction"));
      return null;
  }
        list = new ArrayList<Exoneraciones>();
  String sql = "select * from exoneraciones where " + query +"";
  if (query == null || query.equals("")) {
  return null;
   }
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "exoneraciones" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
   
        Exoneraciones exoneraciones2 = new Exoneraciones(
         rs.getString("idexoneracion"),rs.getDate("fechaexoneracion"),rs.getString("autorizado"),rs.getString("detalle"),rs.getDouble("porcentaje"),rs.getDouble("valor"),rs.getString("activo"),rs.getString("idmunicipio"),rs.getString("idusuario"),rs.getDate("fecha"),rs.getInt("anio"));
            
            
       list.add(exoneraciones2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
}


/**
*
* getListRecords()
*/

public static List<Exoneraciones> getListRecords(Map parametros,boolean withRelation) {
  excepcion = null;
  try {
      esMensaje =false;

  con= dataGManager.getCon();
  if (con == null) {
      excepcion=new Exception(bundle.getString("msg.noconecction"));
      return null;
  }
      list = new ArrayList<Exoneraciones>();
  String sql = "select * from exoneraciones";
  if (parametros != null) {
      Iterator it = parametros.entrySet().iterator();
      StringBuilder sb = new StringBuilder("");
      while (it.hasNext()) {
        Map.Entry e = (Map.Entry) it.next();
        sb.append(e.getKey() +"="+  e.getValue());
      }
      if (!sb.toString().equals("")){
         sql = sql + " where " + sb.toString();
      }
   }
  PreparedStatement psquery = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = psquery.executeQuery();
   rs.next();
   int x = rs.getRow();
   if (x == 0) {
          excepcion=new Exception(bundle.getString("msg.nofoundrecords") + "exoneraciones" +"  "+ bundle.getString("msg.withcode"));
          esMensaje =true;
      rs.close();
      psquery.close();
      return null;
   }
   rs.beforeFirst();
   while (rs.next()) {
       
        Exoneraciones exoneraciones2 = new Exoneraciones(
         rs.getString("idexoneracion"),rs.getDate("fechaexoneracion"),rs.getString("autorizado"),rs.getString("detalle"),rs.getDouble("porcentaje"),rs.getDouble("valor"),rs.getString("activo"),rs.getString("idmunicipio"),rs.getString("idusuario"),rs.getDate("fecha"),rs.getInt("anio"));
            
            
       list.add(exoneraciones2);
    }
    rs.close();
    psquery.close();
    return list;
} catch (Exception ex) {
      excepcion = ex;
}
  return null;
 }


}
